#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：20.多个闭是内存隔离的.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-10-28 09:37
'''
"""
    闭包的返回函数id内存隔离的，类似类的实例对象创建
    1.闭包就是在一个函数的内部又定义了一个函数
        1.1 内部函数访问外部函数的参数
        1.2 外部函数返回了内部函数的地址
    2.内部函数是可以访问外部函数的参数的
        2.1 内部函数访问外部函数的参数时，如果要修改，必须把参数的值改成nonlocal，和全局变量global有点类似
"""
def wrapper(name):
    def message(content):
        print(f"{name}：{content}")
    print(f"{name}：内部函数的引用地址为：{id(message)}")
    return  message

func_1 = wrapper("安娜")

func_2 = wrapper("双双")

print(id(func_1))
print(id(func_2))

func_1("你在吃饭吗？")
func_2("我在吃猪蹄")